package com.dk.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SysAutoCodePartExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SysAutoCodePartExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPartIdIsNull() {
            addCriterion("part_id is null");
            return (Criteria) this;
        }

        public Criteria andPartIdIsNotNull() {
            addCriterion("part_id is not null");
            return (Criteria) this;
        }

        public Criteria andPartIdEqualTo(Long value) {
            addCriterion("part_id =", value, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdNotEqualTo(Long value) {
            addCriterion("part_id <>", value, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdGreaterThan(Long value) {
            addCriterion("part_id >", value, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdGreaterThanOrEqualTo(Long value) {
            addCriterion("part_id >=", value, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdLessThan(Long value) {
            addCriterion("part_id <", value, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdLessThanOrEqualTo(Long value) {
            addCriterion("part_id <=", value, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdIn(List<Long> values) {
            addCriterion("part_id in", values, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdNotIn(List<Long> values) {
            addCriterion("part_id not in", values, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdBetween(Long value1, Long value2) {
            addCriterion("part_id between", value1, value2, "partId");
            return (Criteria) this;
        }

        public Criteria andPartIdNotBetween(Long value1, Long value2) {
            addCriterion("part_id not between", value1, value2, "partId");
            return (Criteria) this;
        }

        public Criteria andRuleIdIsNull() {
            addCriterion("rule_id is null");
            return (Criteria) this;
        }

        public Criteria andRuleIdIsNotNull() {
            addCriterion("rule_id is not null");
            return (Criteria) this;
        }

        public Criteria andRuleIdEqualTo(Long value) {
            addCriterion("rule_id =", value, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdNotEqualTo(Long value) {
            addCriterion("rule_id <>", value, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdGreaterThan(Long value) {
            addCriterion("rule_id >", value, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdGreaterThanOrEqualTo(Long value) {
            addCriterion("rule_id >=", value, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdLessThan(Long value) {
            addCriterion("rule_id <", value, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdLessThanOrEqualTo(Long value) {
            addCriterion("rule_id <=", value, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdIn(List<Long> values) {
            addCriterion("rule_id in", values, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdNotIn(List<Long> values) {
            addCriterion("rule_id not in", values, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdBetween(Long value1, Long value2) {
            addCriterion("rule_id between", value1, value2, "ruleId");
            return (Criteria) this;
        }

        public Criteria andRuleIdNotBetween(Long value1, Long value2) {
            addCriterion("rule_id not between", value1, value2, "ruleId");
            return (Criteria) this;
        }

        public Criteria andPartIndexIsNull() {
            addCriterion("part_index is null");
            return (Criteria) this;
        }

        public Criteria andPartIndexIsNotNull() {
            addCriterion("part_index is not null");
            return (Criteria) this;
        }

        public Criteria andPartIndexEqualTo(Integer value) {
            addCriterion("part_index =", value, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexNotEqualTo(Integer value) {
            addCriterion("part_index <>", value, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexGreaterThan(Integer value) {
            addCriterion("part_index >", value, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexGreaterThanOrEqualTo(Integer value) {
            addCriterion("part_index >=", value, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexLessThan(Integer value) {
            addCriterion("part_index <", value, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexLessThanOrEqualTo(Integer value) {
            addCriterion("part_index <=", value, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexIn(List<Integer> values) {
            addCriterion("part_index in", values, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexNotIn(List<Integer> values) {
            addCriterion("part_index not in", values, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexBetween(Integer value1, Integer value2) {
            addCriterion("part_index between", value1, value2, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartIndexNotBetween(Integer value1, Integer value2) {
            addCriterion("part_index not between", value1, value2, "partIndex");
            return (Criteria) this;
        }

        public Criteria andPartTypeIsNull() {
            addCriterion("part_type is null");
            return (Criteria) this;
        }

        public Criteria andPartTypeIsNotNull() {
            addCriterion("part_type is not null");
            return (Criteria) this;
        }

        public Criteria andPartTypeEqualTo(String value) {
            addCriterion("part_type =", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeNotEqualTo(String value) {
            addCriterion("part_type <>", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeGreaterThan(String value) {
            addCriterion("part_type >", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeGreaterThanOrEqualTo(String value) {
            addCriterion("part_type >=", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeLessThan(String value) {
            addCriterion("part_type <", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeLessThanOrEqualTo(String value) {
            addCriterion("part_type <=", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeLike(String value) {
            addCriterion("part_type like", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeNotLike(String value) {
            addCriterion("part_type not like", value, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeIn(List<String> values) {
            addCriterion("part_type in", values, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeNotIn(List<String> values) {
            addCriterion("part_type not in", values, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeBetween(String value1, String value2) {
            addCriterion("part_type between", value1, value2, "partType");
            return (Criteria) this;
        }

        public Criteria andPartTypeNotBetween(String value1, String value2) {
            addCriterion("part_type not between", value1, value2, "partType");
            return (Criteria) this;
        }

        public Criteria andPartCodeIsNull() {
            addCriterion("part_code is null");
            return (Criteria) this;
        }

        public Criteria andPartCodeIsNotNull() {
            addCriterion("part_code is not null");
            return (Criteria) this;
        }

        public Criteria andPartCodeEqualTo(String value) {
            addCriterion("part_code =", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeNotEqualTo(String value) {
            addCriterion("part_code <>", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeGreaterThan(String value) {
            addCriterion("part_code >", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeGreaterThanOrEqualTo(String value) {
            addCriterion("part_code >=", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeLessThan(String value) {
            addCriterion("part_code <", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeLessThanOrEqualTo(String value) {
            addCriterion("part_code <=", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeLike(String value) {
            addCriterion("part_code like", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeNotLike(String value) {
            addCriterion("part_code not like", value, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeIn(List<String> values) {
            addCriterion("part_code in", values, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeNotIn(List<String> values) {
            addCriterion("part_code not in", values, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeBetween(String value1, String value2) {
            addCriterion("part_code between", value1, value2, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartCodeNotBetween(String value1, String value2) {
            addCriterion("part_code not between", value1, value2, "partCode");
            return (Criteria) this;
        }

        public Criteria andPartNameIsNull() {
            addCriterion("part_name is null");
            return (Criteria) this;
        }

        public Criteria andPartNameIsNotNull() {
            addCriterion("part_name is not null");
            return (Criteria) this;
        }

        public Criteria andPartNameEqualTo(String value) {
            addCriterion("part_name =", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameNotEqualTo(String value) {
            addCriterion("part_name <>", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameGreaterThan(String value) {
            addCriterion("part_name >", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameGreaterThanOrEqualTo(String value) {
            addCriterion("part_name >=", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameLessThan(String value) {
            addCriterion("part_name <", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameLessThanOrEqualTo(String value) {
            addCriterion("part_name <=", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameLike(String value) {
            addCriterion("part_name like", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameNotLike(String value) {
            addCriterion("part_name not like", value, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameIn(List<String> values) {
            addCriterion("part_name in", values, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameNotIn(List<String> values) {
            addCriterion("part_name not in", values, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameBetween(String value1, String value2) {
            addCriterion("part_name between", value1, value2, "partName");
            return (Criteria) this;
        }

        public Criteria andPartNameNotBetween(String value1, String value2) {
            addCriterion("part_name not between", value1, value2, "partName");
            return (Criteria) this;
        }

        public Criteria andPartLengthIsNull() {
            addCriterion("part_length is null");
            return (Criteria) this;
        }

        public Criteria andPartLengthIsNotNull() {
            addCriterion("part_length is not null");
            return (Criteria) this;
        }

        public Criteria andPartLengthEqualTo(Integer value) {
            addCriterion("part_length =", value, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthNotEqualTo(Integer value) {
            addCriterion("part_length <>", value, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthGreaterThan(Integer value) {
            addCriterion("part_length >", value, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthGreaterThanOrEqualTo(Integer value) {
            addCriterion("part_length >=", value, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthLessThan(Integer value) {
            addCriterion("part_length <", value, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthLessThanOrEqualTo(Integer value) {
            addCriterion("part_length <=", value, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthIn(List<Integer> values) {
            addCriterion("part_length in", values, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthNotIn(List<Integer> values) {
            addCriterion("part_length not in", values, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthBetween(Integer value1, Integer value2) {
            addCriterion("part_length between", value1, value2, "partLength");
            return (Criteria) this;
        }

        public Criteria andPartLengthNotBetween(Integer value1, Integer value2) {
            addCriterion("part_length not between", value1, value2, "partLength");
            return (Criteria) this;
        }

        public Criteria andDateFormatIsNull() {
            addCriterion("date_format is null");
            return (Criteria) this;
        }

        public Criteria andDateFormatIsNotNull() {
            addCriterion("date_format is not null");
            return (Criteria) this;
        }

        public Criteria andDateFormatEqualTo(String value) {
            addCriterion("date_format =", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatNotEqualTo(String value) {
            addCriterion("date_format <>", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatGreaterThan(String value) {
            addCriterion("date_format >", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatGreaterThanOrEqualTo(String value) {
            addCriterion("date_format >=", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatLessThan(String value) {
            addCriterion("date_format <", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatLessThanOrEqualTo(String value) {
            addCriterion("date_format <=", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatLike(String value) {
            addCriterion("date_format like", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatNotLike(String value) {
            addCriterion("date_format not like", value, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatIn(List<String> values) {
            addCriterion("date_format in", values, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatNotIn(List<String> values) {
            addCriterion("date_format not in", values, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatBetween(String value1, String value2) {
            addCriterion("date_format between", value1, value2, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andDateFormatNotBetween(String value1, String value2) {
            addCriterion("date_format not between", value1, value2, "dateFormat");
            return (Criteria) this;
        }

        public Criteria andInputCharacterIsNull() {
            addCriterion("input_character is null");
            return (Criteria) this;
        }

        public Criteria andInputCharacterIsNotNull() {
            addCriterion("input_character is not null");
            return (Criteria) this;
        }

        public Criteria andInputCharacterEqualTo(String value) {
            addCriterion("input_character =", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterNotEqualTo(String value) {
            addCriterion("input_character <>", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterGreaterThan(String value) {
            addCriterion("input_character >", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterGreaterThanOrEqualTo(String value) {
            addCriterion("input_character >=", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterLessThan(String value) {
            addCriterion("input_character <", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterLessThanOrEqualTo(String value) {
            addCriterion("input_character <=", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterLike(String value) {
            addCriterion("input_character like", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterNotLike(String value) {
            addCriterion("input_character not like", value, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterIn(List<String> values) {
            addCriterion("input_character in", values, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterNotIn(List<String> values) {
            addCriterion("input_character not in", values, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterBetween(String value1, String value2) {
            addCriterion("input_character between", value1, value2, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andInputCharacterNotBetween(String value1, String value2) {
            addCriterion("input_character not between", value1, value2, "inputCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterIsNull() {
            addCriterion("fix_character is null");
            return (Criteria) this;
        }

        public Criteria andFixCharacterIsNotNull() {
            addCriterion("fix_character is not null");
            return (Criteria) this;
        }

        public Criteria andFixCharacterEqualTo(String value) {
            addCriterion("fix_character =", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterNotEqualTo(String value) {
            addCriterion("fix_character <>", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterGreaterThan(String value) {
            addCriterion("fix_character >", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterGreaterThanOrEqualTo(String value) {
            addCriterion("fix_character >=", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterLessThan(String value) {
            addCriterion("fix_character <", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterLessThanOrEqualTo(String value) {
            addCriterion("fix_character <=", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterLike(String value) {
            addCriterion("fix_character like", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterNotLike(String value) {
            addCriterion("fix_character not like", value, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterIn(List<String> values) {
            addCriterion("fix_character in", values, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterNotIn(List<String> values) {
            addCriterion("fix_character not in", values, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterBetween(String value1, String value2) {
            addCriterion("fix_character between", value1, value2, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andFixCharacterNotBetween(String value1, String value2) {
            addCriterion("fix_character not between", value1, value2, "fixCharacter");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoIsNull() {
            addCriterion("seria_start_no is null");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoIsNotNull() {
            addCriterion("seria_start_no is not null");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoEqualTo(Integer value) {
            addCriterion("seria_start_no =", value, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoNotEqualTo(Integer value) {
            addCriterion("seria_start_no <>", value, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoGreaterThan(Integer value) {
            addCriterion("seria_start_no >", value, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoGreaterThanOrEqualTo(Integer value) {
            addCriterion("seria_start_no >=", value, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoLessThan(Integer value) {
            addCriterion("seria_start_no <", value, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoLessThanOrEqualTo(Integer value) {
            addCriterion("seria_start_no <=", value, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoIn(List<Integer> values) {
            addCriterion("seria_start_no in", values, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoNotIn(List<Integer> values) {
            addCriterion("seria_start_no not in", values, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoBetween(Integer value1, Integer value2) {
            addCriterion("seria_start_no between", value1, value2, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStartNoNotBetween(Integer value1, Integer value2) {
            addCriterion("seria_start_no not between", value1, value2, "seriaStartNo");
            return (Criteria) this;
        }

        public Criteria andSeriaStepIsNull() {
            addCriterion("seria_step is null");
            return (Criteria) this;
        }

        public Criteria andSeriaStepIsNotNull() {
            addCriterion("seria_step is not null");
            return (Criteria) this;
        }

        public Criteria andSeriaStepEqualTo(Integer value) {
            addCriterion("seria_step =", value, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepNotEqualTo(Integer value) {
            addCriterion("seria_step <>", value, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepGreaterThan(Integer value) {
            addCriterion("seria_step >", value, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepGreaterThanOrEqualTo(Integer value) {
            addCriterion("seria_step >=", value, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepLessThan(Integer value) {
            addCriterion("seria_step <", value, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepLessThanOrEqualTo(Integer value) {
            addCriterion("seria_step <=", value, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepIn(List<Integer> values) {
            addCriterion("seria_step in", values, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepNotIn(List<Integer> values) {
            addCriterion("seria_step not in", values, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepBetween(Integer value1, Integer value2) {
            addCriterion("seria_step between", value1, value2, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaStepNotBetween(Integer value1, Integer value2) {
            addCriterion("seria_step not between", value1, value2, "seriaStep");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoIsNull() {
            addCriterion("seria_now_no is null");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoIsNotNull() {
            addCriterion("seria_now_no is not null");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoEqualTo(Integer value) {
            addCriterion("seria_now_no =", value, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoNotEqualTo(Integer value) {
            addCriterion("seria_now_no <>", value, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoGreaterThan(Integer value) {
            addCriterion("seria_now_no >", value, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoGreaterThanOrEqualTo(Integer value) {
            addCriterion("seria_now_no >=", value, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoLessThan(Integer value) {
            addCriterion("seria_now_no <", value, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoLessThanOrEqualTo(Integer value) {
            addCriterion("seria_now_no <=", value, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoIn(List<Integer> values) {
            addCriterion("seria_now_no in", values, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoNotIn(List<Integer> values) {
            addCriterion("seria_now_no not in", values, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoBetween(Integer value1, Integer value2) {
            addCriterion("seria_now_no between", value1, value2, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andSeriaNowNoNotBetween(Integer value1, Integer value2) {
            addCriterion("seria_now_no not between", value1, value2, "seriaNowNo");
            return (Criteria) this;
        }

        public Criteria andCycleFlagIsNull() {
            addCriterion("cycle_flag is null");
            return (Criteria) this;
        }

        public Criteria andCycleFlagIsNotNull() {
            addCriterion("cycle_flag is not null");
            return (Criteria) this;
        }

        public Criteria andCycleFlagEqualTo(String value) {
            addCriterion("cycle_flag =", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagNotEqualTo(String value) {
            addCriterion("cycle_flag <>", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagGreaterThan(String value) {
            addCriterion("cycle_flag >", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagGreaterThanOrEqualTo(String value) {
            addCriterion("cycle_flag >=", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagLessThan(String value) {
            addCriterion("cycle_flag <", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagLessThanOrEqualTo(String value) {
            addCriterion("cycle_flag <=", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagLike(String value) {
            addCriterion("cycle_flag like", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagNotLike(String value) {
            addCriterion("cycle_flag not like", value, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagIn(List<String> values) {
            addCriterion("cycle_flag in", values, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagNotIn(List<String> values) {
            addCriterion("cycle_flag not in", values, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagBetween(String value1, String value2) {
            addCriterion("cycle_flag between", value1, value2, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleFlagNotBetween(String value1, String value2) {
            addCriterion("cycle_flag not between", value1, value2, "cycleFlag");
            return (Criteria) this;
        }

        public Criteria andCycleMethodIsNull() {
            addCriterion("cycle_method is null");
            return (Criteria) this;
        }

        public Criteria andCycleMethodIsNotNull() {
            addCriterion("cycle_method is not null");
            return (Criteria) this;
        }

        public Criteria andCycleMethodEqualTo(String value) {
            addCriterion("cycle_method =", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodNotEqualTo(String value) {
            addCriterion("cycle_method <>", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodGreaterThan(String value) {
            addCriterion("cycle_method >", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodGreaterThanOrEqualTo(String value) {
            addCriterion("cycle_method >=", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodLessThan(String value) {
            addCriterion("cycle_method <", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodLessThanOrEqualTo(String value) {
            addCriterion("cycle_method <=", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodLike(String value) {
            addCriterion("cycle_method like", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodNotLike(String value) {
            addCriterion("cycle_method not like", value, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodIn(List<String> values) {
            addCriterion("cycle_method in", values, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodNotIn(List<String> values) {
            addCriterion("cycle_method not in", values, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodBetween(String value1, String value2) {
            addCriterion("cycle_method between", value1, value2, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andCycleMethodNotBetween(String value1, String value2) {
            addCriterion("cycle_method not between", value1, value2, "cycleMethod");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andAttr1IsNull() {
            addCriterion("attr1 is null");
            return (Criteria) this;
        }

        public Criteria andAttr1IsNotNull() {
            addCriterion("attr1 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr1EqualTo(String value) {
            addCriterion("attr1 =", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotEqualTo(String value) {
            addCriterion("attr1 <>", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1GreaterThan(String value) {
            addCriterion("attr1 >", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1GreaterThanOrEqualTo(String value) {
            addCriterion("attr1 >=", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1LessThan(String value) {
            addCriterion("attr1 <", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1LessThanOrEqualTo(String value) {
            addCriterion("attr1 <=", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1Like(String value) {
            addCriterion("attr1 like", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotLike(String value) {
            addCriterion("attr1 not like", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1In(List<String> values) {
            addCriterion("attr1 in", values, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotIn(List<String> values) {
            addCriterion("attr1 not in", values, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1Between(String value1, String value2) {
            addCriterion("attr1 between", value1, value2, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotBetween(String value1, String value2) {
            addCriterion("attr1 not between", value1, value2, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr2IsNull() {
            addCriterion("attr2 is null");
            return (Criteria) this;
        }

        public Criteria andAttr2IsNotNull() {
            addCriterion("attr2 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr2EqualTo(String value) {
            addCriterion("attr2 =", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotEqualTo(String value) {
            addCriterion("attr2 <>", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2GreaterThan(String value) {
            addCriterion("attr2 >", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2GreaterThanOrEqualTo(String value) {
            addCriterion("attr2 >=", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2LessThan(String value) {
            addCriterion("attr2 <", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2LessThanOrEqualTo(String value) {
            addCriterion("attr2 <=", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2Like(String value) {
            addCriterion("attr2 like", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotLike(String value) {
            addCriterion("attr2 not like", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2In(List<String> values) {
            addCriterion("attr2 in", values, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotIn(List<String> values) {
            addCriterion("attr2 not in", values, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2Between(String value1, String value2) {
            addCriterion("attr2 between", value1, value2, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotBetween(String value1, String value2) {
            addCriterion("attr2 not between", value1, value2, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr3IsNull() {
            addCriterion("attr3 is null");
            return (Criteria) this;
        }

        public Criteria andAttr3IsNotNull() {
            addCriterion("attr3 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr3EqualTo(Integer value) {
            addCriterion("attr3 =", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotEqualTo(Integer value) {
            addCriterion("attr3 <>", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3GreaterThan(Integer value) {
            addCriterion("attr3 >", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3GreaterThanOrEqualTo(Integer value) {
            addCriterion("attr3 >=", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3LessThan(Integer value) {
            addCriterion("attr3 <", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3LessThanOrEqualTo(Integer value) {
            addCriterion("attr3 <=", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3In(List<Integer> values) {
            addCriterion("attr3 in", values, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotIn(List<Integer> values) {
            addCriterion("attr3 not in", values, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3Between(Integer value1, Integer value2) {
            addCriterion("attr3 between", value1, value2, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotBetween(Integer value1, Integer value2) {
            addCriterion("attr3 not between", value1, value2, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr4IsNull() {
            addCriterion("attr4 is null");
            return (Criteria) this;
        }

        public Criteria andAttr4IsNotNull() {
            addCriterion("attr4 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr4EqualTo(Integer value) {
            addCriterion("attr4 =", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotEqualTo(Integer value) {
            addCriterion("attr4 <>", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4GreaterThan(Integer value) {
            addCriterion("attr4 >", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4GreaterThanOrEqualTo(Integer value) {
            addCriterion("attr4 >=", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4LessThan(Integer value) {
            addCriterion("attr4 <", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4LessThanOrEqualTo(Integer value) {
            addCriterion("attr4 <=", value, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4In(List<Integer> values) {
            addCriterion("attr4 in", values, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotIn(List<Integer> values) {
            addCriterion("attr4 not in", values, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4Between(Integer value1, Integer value2) {
            addCriterion("attr4 between", value1, value2, "attr4");
            return (Criteria) this;
        }

        public Criteria andAttr4NotBetween(Integer value1, Integer value2) {
            addCriterion("attr4 not between", value1, value2, "attr4");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNull() {
            addCriterion("create_by is null");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNotNull() {
            addCriterion("create_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreateByEqualTo(String value) {
            addCriterion("create_by =", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotEqualTo(String value) {
            addCriterion("create_by <>", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThan(String value) {
            addCriterion("create_by >", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThanOrEqualTo(String value) {
            addCriterion("create_by >=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThan(String value) {
            addCriterion("create_by <", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThanOrEqualTo(String value) {
            addCriterion("create_by <=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLike(String value) {
            addCriterion("create_by like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotLike(String value) {
            addCriterion("create_by not like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByIn(List<String> values) {
            addCriterion("create_by in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotIn(List<String> values) {
            addCriterion("create_by not in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByBetween(String value1, String value2) {
            addCriterion("create_by between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotBetween(String value1, String value2) {
            addCriterion("create_by not between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNull() {
            addCriterion("update_by is null");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNotNull() {
            addCriterion("update_by is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateByEqualTo(String value) {
            addCriterion("update_by =", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotEqualTo(String value) {
            addCriterion("update_by <>", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThan(String value) {
            addCriterion("update_by >", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
            addCriterion("update_by >=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThan(String value) {
            addCriterion("update_by <", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThanOrEqualTo(String value) {
            addCriterion("update_by <=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLike(String value) {
            addCriterion("update_by like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotLike(String value) {
            addCriterion("update_by not like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByIn(List<String> values) {
            addCriterion("update_by in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotIn(List<String> values) {
            addCriterion("update_by not in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByBetween(String value1, String value2) {
            addCriterion("update_by between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotBetween(String value1, String value2) {
            addCriterion("update_by not between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}